package com.justgame.project.service.api.feign;

import com.justgame.project.cloud.common.constant.AppConstant;
import com.justgame.project.service.api.dto.OnlineUserInfoDTO;
import com.justgame.project.service.api.entity.OnlineUserInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

/**
 * OnlineUser 微服务接口
 *
 * @author ZhouWeiBo
 * @create 2022/4/12
 */
@FeignClient(value = AppConstant.ONLINE, fallback = OnlineUserClientFallback.class)
public interface IOnlineUserClient {
    String API_PREFIX = "/feign/online-user";
    String SAVE_ONLINE_USER_URL = API_PREFIX + "/save";
    String UPDATE_ONLINE_USER_URL = API_PREFIX + "/update-by-id";
    String GET_ONLINE_USER_INFO_URL = API_PREFIX + "/get-by-id";
    String UPDATE_ONLINE_USER_IMAGE_URL = API_PREFIX + "/update-image";
    /**
     * 新增方法
     *
     * @param dto 装配后的用户信息
     * @return Result.class
     */
    @PostMapping(SAVE_ONLINE_USER_URL)
    Boolean saveOnlineUser(@RequestBody OnlineUserInfoDTO dto);

    /**
     * 通过ID更新信息
     * @param dto 请求数据
     * @return Result.class
     */
    @PutMapping(UPDATE_ONLINE_USER_URL)
    Boolean updateById(@RequestBody OnlineUserInfoDTO dto);

    /**
     * 通过id获取onlineUser信息
     *
     * @param id id
     * @return OnlineUserInfo.class
     */
    @GetMapping(GET_ONLINE_USER_INFO_URL)
    OnlineUserInfo getOnlineInfo(@RequestParam("id") String id);

    /**
     * 通过id更新onlineUser头像信息
     * @param dto OnlineUserInfoDTO.class
     * @return OnlineUserInfo.class
     */
    @PostMapping(UPDATE_ONLINE_USER_IMAGE_URL)
    Boolean updateUserImage(@RequestBody OnlineUserInfoDTO dto);
}
